perm filename NET.FAI[S,NET] blob
sn#851713 filedate 1988-01-18 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE NET History A B C D X Y Z P NAMLEN PDLEN NAMES PDL NLIST NSTAT NDOWN NUP NETNAM CRLF START SHOW CMDERR CMD CMD1 CMD2 CMDD CMDU NETLUZ TYPSIX TYPSI1
C00007 ENDMK
C⊗;
TITLE NET ;⊗ History A B C D X Y Z P NAMLEN PDLEN NAMES PDL NLIST NSTAT NDOWN NUP NETNAM CRLF START SHOW CMDERR CMD CMD1 CMD2 CMDD CMDU NETLUZ TYPSIX TYPSI1
COMMENT $
Program to take networks up and down and other useful things.
History (add changes at end):
16 Feb 86 JJW Initial implementation
18 Jan 88 JJW Changed command syntax, added Exit and Reinit commands.
History: add changes above this line.
$ ;end of comment
OPDEF NETUUO [CALLI 400135]
A←1
B←2
C←3
D←4
X←5
Y←6
Z←7
P←17
IMP←←0
NAMLEN←10
PDLEN←40
NAMES: BLOCK NAMLEN
PDL: BLOCK PDLEN
;Argument blocks for NETUUO functions
NLIST: 1
0
-NAMLEN,,NAMES
NSTAT: 2
0
0
NDOWN: 3
0
0
NUP: 4
0
0
NETNAM: 0
CRLF: BYTE (7)15,12
START: RESET
MOVE P,[IOWD PDLEN,PDL]
;Get list of network names
MOVEI A,NLIST
NETUUO A,
PUSHJ P,NETLUZ
;Print name and status of each network
SETZ C,
SHOW: SKIPN A,NAMES(C) ;Get a network name
JRST CMD0 ;No more networks
MOVEM A,NSTAT+1 ;Put in arg block
PUSHJ P,TYPSIX
OUTSTR [ASCIZ/: /]
MOVEI A,NSTAT
NETUUO A,
PUSHJ P,NETLUZ
HRRE A,NSTAT+2
MOVEI B,[ASCIZ/Down/]
SKIPE A
MOVEI B,[ASCIZ/Up/]
OUTSTR (B)
OUTSTR CRLF
AOJA C,SHOW
CMD0: OUTSTR [ASCIZ/Commands: D(own), U(p), R(einit), E(xit)
/]
CMD: OUTSTR [ASCIZ/*/]
INCHRW D
CAIL D,140
SUBI D,40
CAIN D,"D"
JRST CMDD
CAIN D,"E"
JRST CMDE
CAIN D,"R"
JRST CMDR
CAIN D,"U"
JRST CMDU
CAIN D,15
INCHRW D ;Read LF following CR
CAIE D,12
CAIN D,175
JRST CMD ;Abort command, start over
OUTSTR [ASCIZ/
Unknown command
/]
JRST CMD
CMDE: OUTSTR CRLF
EXIT
CMDD: OUTSTR [ASCIZ/own/] ;Take network down
PUSHJ P,GETNET
MOVE A,NETNAM
MOVEM A,NDOWN+1
MOVEI A,NDOWN
NETUUO A,
PUSHJ P,NETLUZ
OUTSTR [ASCIZ/ -- OK --
/]
JRST CMD
CMDU: OUTSTR [ASCIZ/p/] ;Bring network up
PUSHJ P,GETNET
MOVE A,NETNAM
MOVEM A,NUP+1
MOVEI A,NUP
NETUUO A,
PUSHJ P,NETLUZ
OUTSTR [ASCIZ/ -- OK --
/]
JRST CMD
NETLUZ: OUTSTR [ASCIZ/
Network UUO failed. Perhaps you don't have the DEV privilege.
/]
EXIT
CMDR: OUTSTR [ASCIZ/einitialize IMP. This will close all TCP connections.
Type Y to confirm: /]
INCHWL D
CLRBFI
CAIE D,"Y"
CAIN D,"y"
JRST CMDR1
OUTSTR [ASCIZ/Never mind.
/]
JRST CMD
CMDR1: INIT IMP,17 ;Initialize IMP, dump mode
SIXBIT/IMP/
0,,0
JRST 4,.
MTAPE IMP,[12] ;Do it
RELEAS IMP,
JRST CMD
;Type sixbit name in A.
TYPSIX: MOVE Y,A
TYPSI1: SETZ X,
LSHC X,6
ADDI X,40
OUTCHR X
JUMPN Y,TYPSI1
POPJ P,
;Match input character to network name. All networks start with
;unique characters for now, make this smarter if they ever don't.
GETNET: OUTSTR [ASCIZ/ network /]
INCHRW D
CAIL D,140
SUBI D,40
SETZ C,
GETN1: SKIPN B,NAMES(C)
JRST GETN2
SETZ A,
LSHC A,6
CAIE D,40(A) ;Skip if first char matches
AOJA C,GETN1
MOVE A,B ;Print rest of name
PUSHJ P,TYPSIX
MOVE B,NAMES(C) ;Save name for later use
MOVEM B,NETNAM
POPJ P,
GETN2: OUTSTR [ASCIZ/? unknown network
/]
JRST CMD
END START